package com.android.yummycookies.service.storer.imagesStorer.binder;

import java.util.Set;

import android.graphics.Bitmap;
import android.util.SparseArray;

/**
 * Interface de stockage de bitmap redimensionnes
 * 
 * @author julien
 * 
 */
public interface IScaledBitmapsStoreBinder extends IBitmapsStoreBinder {

	/**
	 * Retourne le bitmap redimensionne identifie par l'id renseigne
	 * 
	 * @param id
	 *            l'identifiant du bitmap rechercher
	 * @return le bitmap stocke associe a l'id renseigne, null si innexistant
	 */
	public Bitmap getScaledBitmap(int id);

	/**
	 * Retourne un ensemble de bitmap redimensionnes associes aux id renseignes
	 * 
	 * @param ids
	 *            une liste d'identifiants de bitmap a rechercher
	 * @return un ensemble de bitmap associes aux id renseignes, null si
	 *         innexistants
	 */
	public SparseArray<Bitmap> getAllScaledBitmaps(Set<Integer> ids);

	/**
	 * Redimensionne un bitmap
	 * 
	 * @param id
	 *            l'identifiant du bitmap a redimensionner
	 * @param height
	 *            la hauteur du bitmap redimensionne
	 * @param width
	 *            la largeur du bitmap redimensionne
	 */
	public void scaleBitmap(int id, int height, int width);

	/**
	 * Redimensionne un ensemble de bitmap
	 * 
	 * @param ids
	 *            l'ensemble des identifiants des bitmap a redimensionner
	 * @param height
	 *            la hauteur des bitmap a redimensionner
	 * @param width
	 *            la largeur des bitmap a redimensionner
	 */
	public void scaleAllScaledBitmaps(Set<Integer> ids, int height, int width);

	/**
	 * Supprime le bitmap redimensionne associe a l'identifiant renseigne
	 * 
	 * @param id
	 *            l'identifiant du bitmap a supprimer
	 */
	public void removeScaleBitmap(int id);

	/**
	 * Supprime un ensemble de bitmap associes aux identifiants renseignes
	 * 
	 * @param ids
	 *            un ensemble d'identifiants de bitmap a supprimer
	 */
	public void removeAllScaledBitmaps(Set<Integer> ids);
}
